/*
 * MR_DATA.h
 *
 *  Created on: May 25, 2011
 *      Author: nzhao
 */

#ifndef MR_DATA_H_
#define MR_DATA_H_

#define MR_DATA_LENGTH 6

#include "share/Usrdef.h"
/**  Structure for magnetic resonance data.
 * each item includes a single-letter element name,
 * a gyromagnetic ratio (in unit: rad s^{-1} T^{-1}),
 * and a spin dimension: d = 2 s + 1.
*/
struct STRUCT_MR_DATA
{
    char element[10];	/*!< a single-letter element name */
    double gamma;		/*!< gyromagnetic ratio (in unit: rad s^{-1} T^{-1}) */
    int		spin_dim;	/*!< a spin dimension: d = 2 s + 1 */
};

const struct STRUCT_MR_DATA MR_DATA [MR_DATA_LENGTH]=
    {
//        {"E",   -1.760859794E+11,	2},
//        {"C",   6.726149871E+07,	2},
//        {"H",   2.67522212E+08,		2},
//        {"N14",	1.9338E+07,			3},	//N-14
//		{"Si", -5.3191E+07, 2}//Si-29
    		{"E",	-1.760859794E+11,	2},
    		{"C",	6.7283E+07,		2},
    		{"H",	2.67519E+08,		2},
    		{"N14",1.9338E+07,		3},	//N-14
    		{"N15",-2.712E+07,		3},	//N-15
			{"Si", -5.3188E+07, 		2}//Si-29
    };

const double GAMMA_N			= MR_DATA[1].gamma;     //6.726149871E+07;
const double GAMMA_E			= MR_DATA[0].gamma;     //-1.760859794E+11;

const double INT_CONST_NN		= MU0 / 4.0 / PI * GAMMA_N * GAMMA_N * (HBAR * HBAR) / (ANGSTROM * ANGSTROM * ANGSTROM) / (  HBAR * 1E+3 ); // Unit: k rad / s
const double INT_CONST_NE		= MU0 / 4.0 / PI * GAMMA_N * GAMMA_E * (HBAR * HBAR) / (ANGSTROM * ANGSTROM * ANGSTROM) / (  HBAR * 1E+3 ); // Unit: k rad / s
const double ENRATIO			= GAMMA_E / GAMMA_N;
const double ZEEMAN_UNIT		= - GAMMA_N * 1E-3; // Unit: k rad / s

#endif /* MR_DATA_H_ */
